№1
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main(){
    int *mas, *mas_pol, *mas_otr;
    int n, pol = 0, otr = 0;
    cout << "Укажите число элементов: ";
    cin >> n;
    
    mas = (int *)malloc(sizeof(int)*n);
    srand(time(NULL));
    
    int i = 0;
    while(i < n){
        mas[i] = (rand()%100)-50;
        i++;
    }
    
    cout << "Изначальный массив: ";
    i = 0;
    while(i < n){
        cout << mas[i] << " ";
        i++;
    }
    cout << endl;
    
    for (i = 0; i < n; i++){
        if (mas[i] >= 0){
            pol++;
        }else{
            otr++;
        }
    }
    mas_otr = (int *)malloc(sizeof(int)*otr);
    mas_pol = (int *)malloc(sizeof(int)*pol);
    
    i = 0, pol = 0, otr = 0;
    while(i < n){
        if (mas[i] >= 0){
            mas_pol[pol] = mas[i];
            pol++;
        }else{
            mas_otr[otr] = mas[i];
            otr++;
        }
        i++;
    }
    
    cout << "Положительный массив: ";
    i = 0;
    while(i < pol){
        cout << mas_pol[i] << " ";
        i++;
    }
    cout << endl;
    
    cout << "Отрицательный массив: ";
    i = 0;
    while(i < otr){
        cout << mas_otr[i] << " ";
        i++;
    }
    cout << endl;

    free(mas);
    free(mas_pol);
    free(mas_otr);
    
    return 0;
}




№2
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void FillInc (int A[], int n);
void SelectSort (float A[], int mas[], int n);

int main(){
    int n;
    float *a, *a_double;
    float **b;
    cout << "Укажите число элементов: ";
    cin >> n;
    int mas[n];
    FillInc(mas, n);
    
    a = new float[n];
    a_double = new float[n];
    b = new float*[n]; // Выделяем память для массива указателей
    
    srand(time(NULL));
    for(int i = 0; i < n; i++){
        a[i] = (static_cast<float>(rand()) / RAND_MAX) + (rand()%100);
        b[i] = &a[i];
    }
    
    // Выводим значения адресов из массива a
    cout << "Массив адресов элементов:" << endl;
    for(int i = 0; i < n; i++){
        cout << a[i] << " ";
    }
    /*
    // Выводим значения адресов из массива b
    cout << endl << endl << "Массив адресов элементов:" << endl;
    for(int i = 0; i < n; i++){
        cout << b[i] << " ";
    }
    */
    cout << endl;
    //дублируем массив a в массив a_double
    for (int i = 0; i<n; i++){
        a_double[i] = a[i];
    }
    
    SelectSort(a_double, mas, n);
        
    cout << endl << "Отсортированный массив: " << endl;
    for(int i = 0; i < n; i++){
        cout << *b[mas[i]] << " ";
    }
    cout << endl;
}

void FillInc (int A[], int n) {
    for (int i = 0; i < n; i++) {
        A[i] = i;
    }
}

void SelectSort(float A[], int mas[], int n) {
    int k = 0, temp;
    for (int i = 0; i < n - 1; i++) {
        k = i;
        for (int j = i + 1; j < n; j++) {
            if (A[j] < A[k]) {
                k = j;
            }
        }
        if (k != i) {
            swap(A[i], A[k]);
            swap(mas[i], mas[k]);
        }
    }
}





№3
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main(){
    int n, check = 0, kolvo;
    cout << "Укажите число элементов: ";
    cin >> n;
    int *mas; int *mas2;
    mas = (int *)malloc(sizeof(int)*(n-1));
    
    for(int i = 0; i < n - 1; i++){
        mas[i] = i+2;
    }
    
    cout << endl;
    
    //удяем все чётные числа, кроме 2
    for(int i = 0; i < n-1; i++){
        if (mas[i] > 2 && mas[i] % 2 == 0)
            check++;
    }
    mas2 = (int *)malloc(sizeof(int)*(n-1-check));
    
    for (int i = 0, j = 0; i < n-1; i++){
        if (mas[i] > 2 && mas[i] % 2 == 0){
        }else{
            mas2[j] = mas[i];
            j++;
        }
    }
    kolvo = n-1-check;
    delete mas;
    
    check = 0;
    for(int i = 2; i < kolvo; i++){
        int g = 0;
        for(int j = 3; j < mas2[i]; j=j+2){
            if (mas2[i] % j == 0){
                g = 1;
            }
        }
        if(g == 0){
            check++;
        }
        g = 0;
    }
    
    //cout << endl << check << endl;
    
    int mas_finish[check+2];
    mas_finish[0] = 2, mas_finish[1] = 3;
    
    int l = 2;
    for(int i = 2; i < kolvo; i++){
        int g = 0;
        for(int j = 3; j < mas2[i]; j=j+2){
            if (mas2[i] % j == 0){
                g = 1;
            }
        }
        if(g == 0){
            mas_finish[l] = mas2[i];
            l++;
        }
        g = 0;
    }
    
    for(int i = 0; i < check+2; i++){
        cout << mas_finish[i] << " ";
    }
    cout << endl;
}




